package com.example.contextcube.util;

import android.content.Context;
import android.content.SharedPreferences;

/**
 * SharedPreferences工具类
 * 用于保存和获取应用程序设置和用户状态
 */
public class SharedPrefsUtil {
    // SharedPreferences名称
    private static final String PREFS_NAME = "app_settings";
    
    // 键名常量
    private static final String KEY_IS_LOGGED_IN = "is_logged_in";
    private static final String KEY_LOGGED_IN_USER = "logged_in_user";
    
    /**
     * 获取共享偏好设置对象
     */
    private static SharedPreferences getPrefs(Context context) {
        return context.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE);
    }
    
    /**
     * 保存登录状态
     * @param context 上下文
     * @param username 用户名
     */
    public static void saveLoggedInUser(Context context, String username) {
        SharedPreferences.Editor editor = getPrefs(context).edit();
        editor.putBoolean(KEY_IS_LOGGED_IN, true);
        editor.putString(KEY_LOGGED_IN_USER, username);
        editor.apply();
    }
    
    /**
     * 清除登录状态
     * @param context 上下文
     */
    public static void clearLoginState(Context context) {
        SharedPreferences.Editor editor = getPrefs(context).edit();
        editor.putBoolean(KEY_IS_LOGGED_IN, false);
        editor.putString(KEY_LOGGED_IN_USER, "");
        editor.apply();
    }
    
    /**
     * 检查是否已登录
     * @param context 上下文
     * @return 是否已登录
     */
    public static boolean isLoggedIn(Context context) {
        return getPrefs(context).getBoolean(KEY_IS_LOGGED_IN, false);
    }
    
    /**
     * 获取当前登录的用户名
     * @param context 上下文
     * @return 当前登录的用户名，如果未登录则返回空字符串
     */
    public static String getLoggedInUser(Context context) {
        return getPrefs(context).getString(KEY_LOGGED_IN_USER, "");
    }
} 